home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / prg_gen / convr611.zip / CONVERT.DOC < prev    next >
Text File  |  1996-11-30  |  26KB  |  554 lines

  1. CONVERT.DOC                          1                         Revised: 11-30-96
  2.  
  3. The CONVERT.EXE program  converts  data  between  several  basic  data  formats.
  4. Features:
  5.  
  6.   * You can read data in from any of the following data formats:
  7.       ASCII-delimited
  8.       fixed field
  9.       dBase-compatible
  10.   * You can write data out in any of the following data formats:
  11.       ASCII-delimited
  12.       fixed field
  13.       dBase-compatible
  14.       WKS (Lotus 1-2-3 release 1 compatible)
  15.   * For ASCII-delimited files, you can specify the delimiters used between
  16.     fields as well as around numeric or character data.
  17.   * For dBase input files, you can retain deleted records if you want.
  18.   * You can resize variables or drop them entirely if desired.
  19.   * You can add fields as desired and assign initial values to them.
  20.   * You can specify up to 10 include filters; all records processed must meet
  21.     at least one of these filter conditions.
  22.   * You can specify up to 10 exclude filters; any records which meet these
  23.     filter conditions are dropped.
  24.   * For WKS output files, you can process input files bigger than Lotus
  25.     1-2-3 itself can handle (1-2-3 limits input records to being 240 characters
  26.     or less).
  27.   * Cell filters can be created, ignoring, say, any record where the value in
  28.     cell 4 is less than 10.
  29.   * The program can only handle files with 255 fields or fewer.  (Those
  30.     obsessed with handling more fields can ask for a version that does so.)
  31.   * Handles DOS text files (lines end with CR/LF), Mac text files (lines end
  32.     with CR), or Unix text files (lines end with LF).
  33.  
  34.  
  35.  
  36. CONVERT.DOC                          2                         Revised: 11-30-96
  37.  
  38. Data format types:
  39.  
  40. An ASCII-delimited file is one which typically has  double  quotes  around  each
  41. character field (the quotes  are  optional  in  CONVERT)  and  typically  commas
  42. between fields.  Leading and trailing spaces are removed from character as  well
  43. as all other values.
  44.  
  45. A fixed-field file places each field  in  the  same  column  positions  on  each
  46. record.  The lengths of the fields are the same from record to record.
  47.  
  48. As an example, these might be an ASCII-delimited records:
  49.  
  50.         "Economic Bulletin Board","202 482-3870",35
  51.         "EBB High-Speed","202 482-2584",100
  52.  
  53. Fixed-field file records might look like this for the same data:
  54.  
  55.         Economic Bulletin Board 202 482-3870  35
  56.         EBB High-Speed          202 482-2584 100
  57.  
  58. (On files generated on a PC, most fixed-field file  records  end  with  a  CR/LF
  59. combination.  Although these two characters actually add two characters to  each
  60. line, most people  and  programming  languages  ignore  them.   Files  generated
  61. elsewhere may not have these line terminators.  Use the /BINARY option  if  this
  62. is the case.)
  63.  
  64. WKS files are supported directly by Lotus 1-2-3 (all versions) as well  as  most
  65. other spreadsheet programs.  DBF files are  supported  by  dBaseIII,  dBaseIII+,
  66. dBaseIV, and most other data base management programs (Paradox etc).
  67.  
  68.  
  69.  
  70. CONVERT.DOC                          3                         Revised: 11-30-96
  71.  
  72. Field-definition file:
  73.  
  74. Unless you are reading a dBase file, this program  requires  a  field-definition
  75. file to figure out the characteristics for each field and also  to  set  certain
  76. file characteristics.  If you're processing an ASCII-delimited input  file,  the
  77. routine can try to create a field-definition file for you if desired.
  78.  
  79. The  field-definition  file  can  be  created  with  any   text   editor.    The
  80. field-definition file consists of several  records  with  the  following  fields
  81. separated by spaces.  Except for the record type indicator (which must begin  in
  82. column 1), all other fields can be placed in any columns:
  83.  
  84.         (1) record type (see below)
  85.         (2) length of field on input
  86.         (3) number of decimal places for numeric data (if you don't know,
  87.             put a "?" here; for non-numeric data, a "0" is fine) on output
  88.         (4) length of field on output
  89.  
  90. Any characters after the field length are treated as comment fields.  You  would
  91. typically use this to enter the field name  or  column  position  or  any  other
  92. information of use to you.
  93.  
  94. If you'd like, you can leave out both decimal place count *and*  the  length  of
  95. the output field.  (You cannot leave off one and include the other however.)  If
  96. they are left out, the number of decimal places is presumed to be  "0"  and  the
  97. length of the output field is presumed to be the same as the length of the input
  98. field.
  99.  
  100. The data record types accepted by this routine are as follows:
  101.  
  102.         type C = character data (leading spaces are trimmed)
  103.              V = verbatim character data (no leading spaces are trimmed)
  104.              N = numeric
  105.              L = logical (T or F)
  106.              D = date (in yyyymmdd format)
  107.              M = memo fields (only for dBase input files; ignored on output)
  108.  
  109. The data fields should be in the order the fields are found in the source file.
  110.  
  111. Note that for fixed field files, you have to account for every byte in the file.
  112. If you have something like this:
  113.  
  114.         12345678_1_2345678_2_2345678_3      (column positions)
  115.         APPLE    X Y    12 BANANAS
  116.  
  117. Even though you may think you only have five fields,  the  following  .DEF  file
  118. will NOT work:
  119.  
  120.         ; Bad .DEF file:  Note does not account for blank spaces
  121.         ; NOTE:  Input and output lengths are the same (mistakenly) so left
  122.         ; out number of decimal places and output length for each record.
  123.         C   8 Fruit1
  124.         C   1 Class1
  125.         C   1 Class2
  126.         N   5 Value
  127.         C  11 Fruit2
  128.  
  129.  
  130. CONVERT.DOC                          4                         Revised: 11-30-96
  131.  
  132. You may want the Fruit1 field to be in columns 1 through 8 and Class1 to  be  in
  133. column 10 but the routine will not know to  skip  column  9  so  it  will  start
  134. reading Class1 beginning in column 9, Class2 beginning in column  10,  etc.   To
  135. drop the blank positions, you have to add dummy fields on input and ask for them
  136. to be dropped on output:
  137.  
  138.         ; Good .DEF file:  Spaces between fields are accounted for
  139.         C   8       Fruit1
  140.         C   1 0   0 Filler
  141.         C   1       Class1
  142.         C   1 0   0 Filler
  143.         C   1       Class2
  144.         C   1 0   0 Filler
  145.         N   5       Value
  146.         C   1 0   0 Filler
  147.         C  11       Fruit2
  148.  
  149. You can also use the input field length and output field lengths to either  drop
  150. fields using other formats (by specifying a zero length  for  the  output  field
  151. length) or for creating fields on output (by specifying a zero  length  for  the
  152. input field length).  You can also use this to expand on contract a field.   For
  153. example, if Fruit1 is 8 characters long  but  you  only  want  it  to  occupy  4
  154. characters on output (thus the field would be  truncated),  specify  8  for  the
  155. input field length and 4 for the output field length:
  156.  
  157.         C 8 0 4 Fruit
  158.  
  159. If the output field length is wider than the input field length, the data values
  160. will be shifted right or left depending on the data type.  In  general,  numeric
  161. fields are shifted right (so extra spaces show up in front of  the  number)  and
  162. all other field types (character, logical, or date) are shifted left.
  163.  
  164. You can have the routine create the field-definition file it's using  for  dBase
  165. and ASCII-delimited files.   This  is  controlled  by  the  /OUTDEF=deffile  and
  166. /-OUTDEF parameters.
  167.  
  168.  
  169. Filters:
  170.  
  171. CONVERT supports two types of filters; record filters and cell (field) filters.
  172.  
  173. Record filters:
  174.  
  175.   In general, record filters apply to the record as a whole.  They are specified
  176.   as unique types of records in the field-definition file.
  177.  
  178.   You may specify up to 10 include record filters and up to  10  exclude  record
  179.   filters in the field-definition file.
  180.  
  181.  
  182. CONVERT.DOC                          5                         Revised: 11-30-96
  183.  
  184.   If an include record filter is specified, the input  record  must  contain  at
  185.   least one of the specified character strings in order to be processed.  If  an
  186.   exclude record filter is specified, any input record which contains any of the
  187.   specified  character  strings  will  be  ignored.   Record  filters  are  case
  188.   sensitive (capitalization matters) and processed as "or" items (if any  filter
  189.   is met, the condition is met; record filters are  not  combined  to  determine
  190.   fulfillment). Record filters are specified in the field-definition file in the
  191.   following ways:
  192.  
  193.         /+=string     include filter, the string "string" can appear anywhere
  194.         /S+=string    include filter, the string "string" is at the beginning
  195.                       of the record
  196.         /+S=string    include filter, the string "string" is at the end of the
  197.                       record
  198.         /-=string     exclude filter, the string "string" can appear anywhere
  199.         /S-=string    exclude filter, the string "string" is at the beginning
  200.                       of the record
  201.         /-S=string    exclude filter, the string "string" is at the end of the
  202.                       record
  203.  
  204.   For example, if you want to specify in your control file that  you  only  want
  205.   records that contain either "Japan" or "France" *and* you want to exclude  any
  206.   records that begin with an underscore character, you would need to include the
  207.   following three filter statements:
  208.  
  209.         /+=Japan
  210.         /+=France
  211.         /S-=_
  212.  
  213.   The character string can include hexadecimal codes (in  the  &Hxx  format)  or
  214.   decimal codes (in the \ddd format) if necessary.  See BRUCEHEX.DOC file.
  215.  
  216. Cell filters:
  217.  
  218.   Cell filters are applied to individual cells (or fields) in the data.  If  any
  219.   cell fails the test for that cell, the entire record is skipped for additional
  220.   processing.
  221.  
  222.   Each variable in the field-definition file can include a cell filter.  Filters
  223.   are specified on the field type records as the last parameters on  the  record
  224.   and are immediately preceded with "||" indicators:
  225.  
  226.         N 8 Weight || > 100
  227.         N 4 Height || <= 6
  228.         C 10 Name || = Banana
  229.  
  230.   Cell filters can be specified as any one of six relations:
  231.  
  232.      "="  is equal to
  233.      "<"  is less than
  234.      ">"  is greater than
  235.      "<=" is less than or equal to
  236.      ">=" is greater than or equal to
  237.      "<>" is not equal to
  238.  
  239.  
  240. CONVERT.DOC                          6                         Revised: 11-30-96
  241.  
  242.   You cannot specify ranges.  The item to the right of the relation  is  treated
  243.   as a string if the field is non-numeric, otherwise, it's treated as a  number.
  244.   Do not include quotes around the strings unless you want that as part  of  the
  245.   condition.  The value can include hexadecimal codes (in the  &Hxx  format)  or
  246.   decimal codes (in the \ddd format) if necessary (see BRUCEHEX.DOC  file).   It
  247.   can also contain spaces.  The cell filter is  case  sensitive  (capitalization
  248.   matters).
  249.  
  250.   If the field is being created, you  can  specify  an  assignment  cell  filter
  251.   (using "=") which will set the value of that cell as something.  For example:
  252.  
  253.         C      10 First Name
  254.         C  0 0  1 Middle Initial || = ?
  255.         C 10 0 20 Last Name
  256.  
  257.  
  258. Field-definition file for SimTel archives:
  259.  
  260. People     who     use     the     SimTel     archives     (ftp.coast.net     or
  261. http://www.coast.net/SimTel) may find the enclosed SIMIBM.DEF file  useful.   It
  262. provides  the  field  definitions  for  the  standard  SIMIBM.IDX   file   (from
  263. subdirectory SimTel/filedocs, download simindex.zip).  The  file  includes  some
  264. hints for dropping fields that don't seem to be useful as  well  as  restricting
  265. the listing to just those files that have been added since a given date.
  266.  
  267.  
  268. Specifying parameters:
  269.  
  270. Parameters for this program can be set in the following ways.  The last  setting
  271. encountered always wins:
  272.   - Read from an *.INI file (see BRUCEINI.DOC file),
  273.   - Through the use of an environmental variable (SET CONVERT=whatever), or
  274.   - From the command line (see "Syntax" below)
  275.  
  276.  
  277.  
  278. CONVERT.DOC                          7                         Revised: 11-30-96
  279.  
  280. Syntax:
  281.  
  282.     CONVERT infile [ outfile [ deffile ] ]
  283.       [ /INDEF=deffile | /-INDEF ] [ /OUTDEF=deffile | /OUTDEF | /-OUTDEF ]
  284.       [ /OVERWRITE | /-OVERWRITE | /APPEND | /OVERASK ]
  285.       [ /FROM FIXED | /FROM ASCII | /FROM DBF ] [ /DELETED | /-DELETED ]
  286.       [ /TO FIXED | /TO ASCII | /TO WKS | /TO DBF ] [ /HEADER | /-HEADER ]
  287.       [ /DELIMS=aroundstrings,aroundnums,betweenfields ] [ /BEEP ]
  288.       [ /INMISS=val ] [ /INMISSC=val ] [ /OUTMISS=val ] [ /OUTMISSC=val ]
  289.       [ /SKIP | /MISSING | /ABORT ] [ /FIRSTOBS=n ] [ /LASTOBS=n ] [ /-VER ]
  290.       [ /-NULLS ] [ /BINARY ] [ /SCAN=n ] [ /GAP=n ] [ /-CFILTERS ]
  291.       [ /MONO ] [ /Iinitfile | /-I ] [ /Q | /Qn ] [ /? ] [ /?&H ]
  292.  
  293. "infile" is the file specification for the ASCII-delimited or  fixed-field  file
  294. you want  converted.   You  can  specify  a  drive  and  path  specification  if
  295. necessary.  This parameter is required.
  296.  
  297. "outfile" is the file specification of the file you want  to  create.   You  can
  298. specify a drive and path specification if necessary.  If no outfile is provided,
  299. the routine will presume you want the output file called the same thing  as  the
  300. infile but you want the extension  to  be  ".FIX"  (if  the  output  file  is  a
  301. fixed-field file), ".PRN" (if the output file is ASCII-delimited), or ".WKS" (if
  302. the output file is to be in a WKS format).
  303.  
  304. "deffile" is the file specification for the input  field-definition  file.   You
  305. can specify a drive and path specification  if  necessary.   If  no  deffile  is
  306. specifically provided, the routine will presume it is called the same  thing  as
  307. the infile but it has the extension of ".DEF".  Note that the deffile  can  only
  308. be provided this  way  if  you  also  specify  the  outfile  name;  the  use  of
  309. /INDEF=deffile is recommended instead.
  310.  
  311. "/INDEF=deffile" provides the name of the field-definition file to  be  read  by
  312. the program.  If no deffile is  specifically  provided  and  you're  using  FROM
  313. ASCII, the routine will presume the field-definition file exists  and  is  named
  314. the same thing as the infile but it has the extension of ".DEF".  A deffile  has
  315. to be specifically provided for FROM FIXED files if one is desired.
  316.  
  317. "/-INDEF" says there is no field-definition file.  This is the default if you're
  318. using FROM DBF or FROM FIXED.
  319.  
  320. "/OUTDEF=deffile" provides the name of the output file that you want the program
  321. to write the field-definition file to.  This is useful in cases  where  you  did
  322. *not* use a field-definition file on input  since  it  allows  you  to  see  and
  323. possibly modify the field-definition file for next time.
  324.  
  325. "/OUTDEF" says to create the field-definition file and automatically name it for
  326. you.  The file name is the same as the infile with an extension of ".DEF".
  327.  
  328. "/-OUTDEF" says to skip the creation of the field-definition file.  This is  the
  329. default for ASCII-delimited and fixed-field files.
  330.  
  331.  
  332. CONVERT.DOC                          8                         Revised: 11-30-96
  333.  
  334. "/OVERWRITE" says to overwrite the output file if it exists already.
  335.  
  336. "/-OVERWRITE" says to abort if the output file exists already.
  337.  
  338. "/APPEND" says to append (add) to the output file if it  exists  already.   This
  339. option is only available if you're  creating  either  a  fixed-field  or  ASCII-
  340. delimited output file.
  341.  
  342. "/OVERASK" says to ask if the output file exists already.  This is initially the
  343. default.
  344.  
  345. "/FROM FIXED", "/FROM ASCII", and "/FROM DBF" specifies the format for the input
  346. file.  The routine usually reads the input file and guesses its format for  you.
  347. If the routine guesses incorrectly, use the /-VER parameter (below) to  overrule
  348. it.
  349.  
  350. "/DELETED" applies to dBase input files  only.   It  says  you  want  to  retain
  351. records tagged as "deleted".  Otherwise, they're dropped in the output file.
  352.  
  353. "/-DELETED" applies to dBase input files only.  It says to drop  records  tagged
  354. as "deleted".  This is initially the default.
  355.  
  356. "/TO FIXED", "/TO ASCII", "/TO WKS", and "/TO DBF" tells the routine  what  sort
  357. of output file you'd like to create.  The input and output file formats  can  be
  358. the same if desired but you have to explicity specify an  output  file  name  in
  359. that case.  Initially defaults to "/TO FIX".
  360.  
  361. "/HEADER" is used in conjunction with  WKS  output  files.   If  /HEADER  is  in
  362. effect, the first row of the spreadsheet will contain the variable name for  the
  363. cell as provided in your control file.  If none are provided,  the  field  names
  364. will be FIELD_01 onward.  "/-HEADER" turns this off and is  the  default.   Note
  365. that the header line (if any) will show up in the output counts.
  366.  
  367. "/DELIMS=aroundstrings,aroundnums,betweenfields"  allows  you  to  specify   the
  368. delimiters (in sequence) around string fields, around numeric fields (any fields
  369. that isn't a character field), and between fields.  Defaults to:
  370.  
  371.         /DELIMS=",,,
  372.  
  373. (Use quotes around character strings, nothing around numeric data, and the third
  374. comma indicates that there is a comma between fields.)  The  replacement  string
  375. can include hexadecimal codes (in the &Hxx format) or decimal codes (in the \ddd
  376. format) if necessary (see BRUCEHEX.DOC file) so either of  the  following  would
  377. put a tab between fields:
  378.  
  379.         /DELIMS=",,&H09
  380.         /DELIMS=",,\009
  381.  
  382. "/BEEP" beeps when the program is finished.
  383.  
  384. "/-BEEP" reverses /BEEP.  Initially the default.
  385.  
  386.  
  387. CONVERT.DOC                          9                         Revised: 11-30-96
  388.  
  389. "/INMISS=val" specifies that any numeric value that  has  the  character  string
  390. representation of "val" will be considered missing.  Note that this is an  exact
  391. character string comparison so /INMISS=1 will not compare to a value of  "1.00".
  392. Defaults to /INMISS=NULL (which translates as spaces).
  393.  
  394. "/INMISSC=val" specifies that any character string value that has the  value  of
  395. "val" will be considered missing.  Defaults to /INMISSC=NULL  (which  translates
  396. as spaces).
  397.  
  398. "/OUTMISS=val" specifies that any missing numeric input value will be translated
  399. on output as "val".  For example, "/OUTMISS=N.A." would fill in "N.A." for  each
  400. missing value.  Defaults to /OUTMISS=NULL (which translates as spaces).
  401.  
  402. "/OUTMISSC=val" specifies  that  any  missing  character  input  value  will  be
  403. translated on output as "val".  Defaults to /OUTMISSC=NULL (which translates  as
  404. spaces).
  405.  
  406. "/SKIP" says to skip records with bad data values; otherwise the routine  aborts
  407. when it runs into any.  /SKIP, /MISSING, and /ABORT are mutually exclusive.
  408.  
  409. "/MISSING" says to presume any  missing  fields  in  an  ASCII-delimited  record
  410. should be filled in with blanks (for character fields) and 0 for numeric fields.
  411. Incomplete records are written out (unlike  in  /SKIP).   /SKIP,  /MISSING,  and
  412. /ABORT are mutually exclusive.  Note that the program will only  print  out  the
  413. first "bad" record.  There may be others that show up after this one.
  414.  
  415. "/ABORT" says to abort when you run into bad records.   Initially  the  default.
  416. /SKIP, /MISSING, and /ABORT are mutually exclusive.
  417.  
  418. "/FIRSTOBS=n" says to start reading the data beginning  with  record  number  n.
  419. Initially defaults to "/FIRSTOBS=1".
  420.  
  421. "/LASTOBS=n" says to stop reading the data after  record  number  n.   Initially
  422. defaults to "/LASTOBS=2000000000" (2 billion).
  423.  
  424. "/-VER" is used when  the  program  verifies  your  input  file  and  mistakenly
  425. determines that it is a file type other than what it is.  This sometimes happens
  426. with fixed-field input files even when /FROM FIXED is specified.
  427.  
  428. "/NULLS" allows fields that begin with decimal 0 to be left in the  output  file
  429. as valid values.  Otherwise,  they're  treated  as  being  missing.   /NULLS  is
  430. initially the default.
  431.  
  432. "/-NULLS" translates any field which begins with the decimal 0 value as missing.
  433. For character fields, it's translated to the value of  INMISSC,  numeric  fields
  434. are switched to the INMISS value.  /NULLS is initially the default.
  435.  
  436. "/BINARY" says that you have a fixed-field input  file  and  that  the  physical
  437. records in this file do not end with the  normal  CR/LF  combination.   This  is
  438. fairly typical of files created on a  mainframe  or  copied  from  a  tape.   If
  439. /BINARY  is  used,  every  byte  must  be  precisely  accounted  for.    /BINARY
  440. automatically invokes the /FROM FIXED option.
  441.  
  442. "/-BINARY" says that every record ends with a CR/LF combination.  This is fairly
  443. standard on files created on a PC, even fixed-field files.  When /-BINARY is  in
  444. effect, trailing fields are ignored.  "/-BINARY" is initially the default.
  445.  
  446.  
  447. CONVERT.DOC                          10                        Revised: 11-30-96
  448.  
  449. "/SCAN=n" says to read the first  n-records  when  determining  the  input  file
  450. characteristics.  This is only relevant for /FROM  ASCII  files  which  use  the
  451. /-INDEF option.  The field types are based on the  first  record  read  but  the
  452. maximum field widths are determined by reading the first  n-records.   Initially
  453. defaults to "/SCAN=10".
  454.  
  455. "/GAP=n" specifies to add n-characters to each output field width.  This is only
  456. relevant for /TO FIXED fields which use  the  /-INDEF  option.   In  this  case,
  457. n-characters are added to each output field length for  non-numeric  fields  and
  458. extra blank fields are added before every numeric field.  This is an easy way of
  459. splitting up columns on display.  If you want non-uniform gaps, you  can  always
  460. process the file twice; specify /-INDEF with /OUTDEF the first time, modify  the
  461. field-definition file by hand, and then reprocess the file with /INDEF=filename.
  462. Initially defaults to "/GAP=0".
  463.  
  464. "/CFILTERS" says that if cell filters are specified in the field-definition file
  465. (e.g. "N 3 Age || > 5"), these cell  filters  are  to  be  respected.   This  is
  466. initially the default.  (If cell filters do not appear in  the  field-definition
  467. file at all, the switch is ignored.)
  468.  
  469. "/-CFILTERS" says that if cell filters are  specified  in  the  field-definition
  470. file, they are to be ignored.  This is useful sometimes if you  want  the  whole
  471. file instead of just getting a subset of it.  Note that this  switch  will  also
  472. turn off initializing new fields (as in "N 0 0 3 Age || = 12").
  473.  
  474. "/MONO" (or "/-COLOR") does  not  try  to  override  screen  colors.   Initially
  475. defaults to "/COLOR".
  476.  
  477. "/COLOR" (or "/-MONO") allows screen colors to be overridden.  This is initially
  478. the default.
  479.  
  480. "/Iinitfile" says to read an initialization file with the file name  "initfile".
  481. The file specification *must* contain a period.  Initfiles are described in  the
  482. BRUCEINI.DOC file.  Initially defaults to "/ICONVERT.INI".
  483.  
  484. "/-I" (or "/INULL") says to skip loading the initialization file.
  485.  
  486. "/Q" turns off the record-by-record status report.
  487.  
  488. "/Qn" shows a status message every n-number of records.  The default is "/Q25".
  489.  
  490. "/?" or "/HELP" or "HELP" shows you the syntax for the command.
  491.  
  492. "/?&H" gives you a hexadecimal and decimal conversion table.
  493.  
  494.  
  495.  
  496. CONVERT.DOC                          11                        Revised: 11-30-96
  497.  
  498. Return codes:
  499.  
  500. CONVERT returns the following ERRORLEVEL codes:
  501.         0 = no problems, file converted
  502.       250 = operation aborted by pressing Escape
  503.       251 = other problems
  504.       252 = problems with input data and /ABORT specified
  505.       253 = problems with INDEF or OUTDEF file
  506.       254 = could not find a decent temporary output subdirectory
  507.       255 = syntax problems, file(s) not found, output file already exists,
  508.             /? requested
  509.  
  510.  
  511. Restrictions and Caveats:
  512.  
  513.   * The program skips all Memo fields in dBase files on input.
  514.  
  515.   * Most spreadsheet programs restrict a given field length to being 240
  516.     characters or less.
  517.  
  518.   * Date fields which are in the form "yy-mm-dd" (instead of "yyyymmdd") should
  519.     be declared as character fields instead of date fields.
  520.  
  521.   * Date fields converted for WKS files are changed into strings of the
  522.     "yy-mm-dd" format.
  523.  
  524.   * Some users have reported problems using this program when their default
  525.     drive is a network drive instead of a local hard drive.  If you get a
  526.     "path/file access error", make C: your default drive and try again.
  527.  
  528.  
  529. Author:
  530.  
  531.                         Bruce Guthrie
  532.                         Room H-4885
  533.                         U.S. Dept of Commerce/ESA/STAT-USA
  534.                         Washington, DC 20230
  535.  
  536.                         voice: (202) 482-3234
  537.                         e-mail: bguthrie@doc.gov
  538.  
  539. You may freely copy and re-distribute this program; however, the U.S. Department
  540. of Commerce neither guarantees nor assures compatibility of the program with all
  541. computer software or hardware.
  542.  
  543. Additional information about this and other Bruce Guthrie programs can be  found
  544. in the file BRUCE.DOC which should be included in the original  ZIP  file.   The
  545. recent change history for this  and  the  other  programs  is  provided  in  the
  546. HISTORY.ymm file which should be in the same ZIP file where "y" is  replaced  by
  547. the last digit of the year and "mm" is the  two  digit  month  of  the  release;
  548. HISTORY.611 came out in November 1996.  This same naming convention is  used  in
  549. naming the ZIP file (CONVRymm.ZIP) that this program was included in.
  550.  
  551. Please provide an Internet e-mail address on all correspondence.
  552.  
  553. 
  554.